package com.erp.erp_dao.CarryPlan;

import com.erp.erp_entitys.CarryPlan.CarryPlan;
import com.erp.erp_entitys.Company.CompanyEntity;
import com.erp.erp_entitys.Customer.CustomerEntity;
import com.erp.erp_entitys.User.UserEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 出运计划主信息表(CarryPlan)表数据库访问层
 *
 * @author makejava
 * @since 2020-10-15 23:31:21
 */
public interface CarryPlanDao {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    CarryPlan queryById(Integer id);

    /**
     * 查询指定行数据
     *

     * @return 对象列表
     */
    List<CarryPlan> queryAllByLimit(@Param("status")Integer status, @Param("billmesage")String billmesage, @Param("opname")String opname, @Param("curropname")String curropname
            , @Param("startcratedate")String startcratedate, @Param("endcratedate")String endcratedate, @Param("companyname")String companyname
            , @Param("startcarrydate")String startcarrydate, @Param("endcarrydate")String endcarrydate);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param carryPlan 实例对象
     * @return 对象列表
     */
    //List<CarryPlan> queryAll(CarryPlan carryPlan);

    /**
     * 新增数据
     *
     * @param carryPlan 实例对象
     * @return 影响行数
     */
    int insert(CarryPlan carryPlan);

    /**
     * 修改数据
     *
     * @param carryPlan 实例对象
     * @return 影响行数
     */
    int update(CarryPlan carryPlan);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Integer id);

    /**
     * 获取客户
     * @return
     */
    List<CustomerEntity> getCustomer();

    /**
     * 获取公司
     * @return
     */
    List<CompanyEntity> getCompany();

    /**
     * 获取用户
     * @return
     */
    List<UserEntity> getUser();
}